ExcelVBAPartsCollection Home Excel Reference Manual DownLoad My Profile
Menu Back Next Links Excel Function Manual Myself My BBS


ダイアログボックス

 





MsgBox関数

 MsgBox 関数は、ダイアログ ボックスにメッセージを表示し、ボタンがクリックされるのを待って、どのボタンがクリックされたのかを示す値を返します。

1 MsgBox 関数の構文
 
 MsgBox 関数の引数は、「prompt」以外のすべてを省略することができます。それぞれの引数の機能は、下表のとおりです。
 
   MsgBox(prompt[, buttons] [, title] [, helpfile, context])

引 数 内               容
prompt ダイアログ ボックス内にメッセージとして表示する文字列式を指定します。
文字列を複数行指定する場合は、「vbCrLf」を改行する位置に挿入します。
buttons 表示するボタンの種類と個数、使用するアイコンのスタイル、標準ボタン、メッセージ ボックスがモーダルかどうかを表す値の合計値を示す数式を指定します。
title ダイアログ ボックスのタイトル バーに表示する文字列を指定します。
helpfile 使用するヘルプ ファイルの名前を示す文字列式を指定します。
context ヘルプ トピックに指定したコンテキスト番号を表す数式を指定します。

2 引数 buttons の指定方法

 名前付き引数 buttons には、次の各グループから値を 1 つずつ選択して加算したうち、該当する値の合計値を指定します。 
 
 [ 例:vbYesNo ボタン(4)と vbQuestion ボタン(32) vbDefaultButton1 (0)の組み合わせ]
 
  ボタンの値を合計すると、「 4 + 32 + 0 = 36 」になりますが、後日、見た場合にわかりやすくするには、下記のように各グループの定数を + (プラス)でつないで指定したほうがわかり易いでしょう。
   Style = vbYesNo + vbQuestion + vbDefaultButton1

定     数 値  内               容 
ボタンの種類と個数
vbOKOnly  0 [OK] ボタンのみを表示します。 
vbOKCancel  1 [OK] ボタンと [キャンセル] ボタンを表示します。
vbAbortRetryIgnore  2 [中止]、[再試行]、及び [無視] ボタンを表示します。
vbYesNoCancel  3 [はい]、[いいえ]、及び [キャンセル] ボタンを表示します。 
vbYesNo  4 [はい] ボタンと [いいえ] ボタンを表示します。 
vbRetryCancel  5 [再試行] ボタンと [キャンセル] ボタンを表示します。
アイコンの種類
vbCritical  16 警告メッセージ アイコンを表示します。
vbQuestion  32 問い合わせメッセージ アイコンを表示します。
vbExclamation  48 注意メッセージ アイコンを表示します。 
vbInformation  64 情報メッセージ アイコンを表示します。 
標準ボタン
vbDefaultButton1  0 第 1 ボタンを標準ボタンにします。
vbDefaultButton2 256 第 2 ボタンを標準ボタンにします。
vbDefaultButton3  512 第 3 ボタンを標準ボタンにします。
vbDefaultButton4  768 第 4 ボタンを標準ボタンにします。
モーダルかどうか
vbApplicationModal 0 アプリケーション モーダルに設定します。
メッセージ ボックスに応答するまで、現在選択中のアプリケーションの実行を継続できません。 
vbSystemModal  4096 システム モーダルに設定します。メッセージ ボックスに応答するまで、すべてのアプリケーションが中断されます。

3 MsgBox 関数の戻り値

 MsgBox 関数の戻り値は、下表に示すように、ボタンの選択結果です。選択結果を取得するには、一般的には変数を使用します。

定 数 説 明 定 数 説 明
vbOK  1 [OK]  vbIgnore  5 [無視] 
vbCancel  2 [キャンセル]  vbYes  6 [はい] 
vbAbort  3 [中止]  vbNo  7 [いいえ] 
vbRetry  4 [再試行]      





1 メッセージを表示するだけのMsgBox

処理内容:印刷実行メッセージを表示します
Sub msgbox_1()
MsgBox "印刷を実行します。プリンタをセットしてください。"
End Sub


処理内容:メッセージを改行(vbCrLf)します
Sub msgbox_2()
MsgBox "印刷を実行します。" & vbCrLf & "プリンタをセットしてください。"
End Sub


処理内容:計算結果を表示します
Sub msgbox_3()
MsgBox "10 MOD 3 = " & 10 Mod 3
End Sub


処理内容:アクティブセルのアドレスを表示します
Sub msgbox_4()
MsgBox ActiveCell.Address
End Sub


処理内容:変数の値を表示します
Sub msgbox_5()
A = 10
MsgBox "変数の値 = " & A
End Sub


処理内容:メッセージと情報アイコンを表示します
Sub msgbox_6()
MsgBox "情報アイコンを表示します", vbInformation
End Sub





2 MsgBox のボタン選択結果による処理

処理内容:印刷実行確認メッセージを表示します
Sub msgbox_7()
Msg = "印刷を実行しますか"
Style =vbYesNo + vbExclamation + vbDefaultButton1
Title = "印刷実行確認"
msgRec=MsgBox(Msg,Style,Title)
If msgRec = vbNo Then Exit Sub
MsgBox "印刷を実行します"
End Sub


処理内容:MsgBoxの戻り値でファイル登録を確認します
Sub msgbox_8()
Msg = "入力結果を登録しますか"
Style = vbYesNoCancel + vbQuestion + vbDefaultButton1
Title = "登録確認"
MsgRec = MsgBox(Msg, Style, Title)
If msgRec = vbNo Then
MsgBox "ファイルを登録せず終了します"
Exit Sub
Else
MsgBox "ファイルを登録します"
End If
End Sub


処理内容:MsgBoxの戻り値の結果により処理分岐します
Sub msgbox_9()
Msg = "処理を実行しますか"
Style = vbYesNoCancel + vbQuestion + vbDefaultButton1
Title = "処理確認"
MsgRec = MsgBox(Msg, Style, Title)
Select Case MsgRec
Case vbYes: MsgBox "「はい」がクリックされたときの処理"
Case vbNo: MsgBox "「いいえ」がクリックされたときの処理"
Case vbCancel: MsgBox "「キャンセル」がクリックされたときの処理"
End Select
End Sub





InputBox 関数

 InputBox 関数は、ダイアログ ボックスにメッセージとテキスト ボックスを表示し、文字列が入力されるか、またはボタンがクリックされると、テキスト ボックスの内容を文字列型 (String)の値で返します。構文は下記のとおりです。

[ InputBox 関数の構文 ]
  InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])

 InputBox 関数の引数は、「prompt」以外のすべてを省略することができます。それぞれの引数の機能は、下表のとおりです。

引数 内               容
prompt ダイアログ ボックス内にメッセージとして表示する文字列を指定します。
文字列を複数行指定する場合は、「vbCrLf」を改行する位置に挿入します。
title ダイアログ ボックスのタイトル バーに表示する文字列式を指定します。
default テキスト ボックスに既定値として表示する文字列式を指定します。
xpos 画面の左端からダイアログ ボックスの左端までの垂直方向の距離を、twip 単位で示す数式を指定します。省略すると、水平方向に対して画面の中央の位置に配置されます。 
ypos 画面の上端からダイアログ ボックスの上端までの垂直方向の距離を、twip 単位で示す数式を指定します。省略すると、垂直方向に対して画面の上端から約 1/3 の位置に配置されます。 
helpfile 使用するヘルプ ファイルの名前を示す文字列式を指定します。
context  ヘルプ トピックに指定したコンテキスト番号を表す数式を指定します。





InputBox 関数でデータ入力

処理内容:年月日を入力します
Sub Inputbox_1()
DateIn = InputBox("年月日を入力してください。", _
"年月日入力", 0, xpos:=3000, ypos:=5000)
MsgBox DateIn & " が入力されました"
End Sub


処理内容:データが入力されるまで次の処理を行わない
Sub Inputbox_2()
Do
Num = InputBox("数字を入力", "データ入力")
If Len(Num) > 0 Then Exit Do
MsgBox "データを入力してください。", vbCritical
Loop
MsgBox Num & " が入力されました"
End Sub





InputBox メソッド

 InputBox メソッドは、ユーザー入力用のダイアログ ボックスを表示し、入力された情報を返します。[OK] ボタンをクリックすると、ダイアログ ボックスに入力した値が返されます。[キャンセル] ボタンをクリックすると、False が返されます。構文は下記のとおりです。

[ InputBox メソッドの構文 ]
  Application.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)

 InputBox メソッドの引数は、「prompt」以外のすべてを省略することができます。それぞれの引数の機能は、下表のとおりです。

引数 内               容
prompt 文字列型 (String) の値を使用します。ダイアログ ボックスに表示するメッセージを指定します。この引数には、文字列、数値、日付、またはブール値を指定できます。(Excel では表示される前に、自動的に値を文字列型 (String) に強制します。)
文字列を複数行指定する場合は、「vbCrLf」を改行する位置に挿入します。
title ダイアログ ボックスのタイトル バーに表示する文字列式を指定します。
default テキスト ボックスに既定値として表示する文字列式を指定します。
Left  画面の左上隅を基準として、左からの位置をポイント単位で指定します。
Top  画面の左上隅を基準として、上からの位置をポイント単位で指定します。
helpfile 使用するヘルプ ファイルの名前を示す文字列式を指定します。
context  ヘルプ トピックに指定したコンテキスト番号を表す数式を指定します。
Type  返されるデータの型を指定します。省略すると、文字列 (テキスト) を返します。
次に示す 1 つまたは複数の値の合計値を引数に指定できます。
たとえば、文字列または数値が入力できるダイアログ ボックスを作成するときは、引数 Type の値を 1 + 2 に設定します。
意味
0 数式 
1 数値
2 文字列 (テキスト) 
4 論理値 (True または False) 
8 セル参照 (Range オブジェクト) 
返された Range オブジェクトを別の Range オブジェクトに代入するには、次のように Set ステートメントを使う必要があります。
Set myRange = Application.InputBox(prompt := "Sample", type := 8)
16 #N/A などのエラー値 
64 数値配列 





InputBox メソッドでデータ入力

処理内容:数値データを入力します
Sub Inputmethod_1()
DateIn = Application.InputBox("数値を入力してください。", "数値入力", 0, _
Left:=200, Top:=100, Type:=1)
MsgBox DateIn & " が入力されました"
End Sub


処理内容:キャンセルボタンが押されたら処理中止、未入力でOKボタンが押されたら再実行
Sub Inputmethod_2()
Dim KeyWord as Variant
Do
KeyWord = Application.InputBox(Prompt:="キーワードを入力", Type:=2)
If KeyWord = False Then Exit Sub  ' キャンセル→処理中止
If Len(KeyWord) > 0 Then Exit Do  ' 未入力→メッセージ表示・再入力
MsgBox "キーワードが入力されていません", vbCritical
Loop
MsgBox KeyWord & " が入力されました"
End Sub


処理内容:日付だけを入力できるようにします
Sub Inputmethod_3()
Dim A As Date
On Error GoTo ErrorTrap
Do
A = Application.InputBox("日付を入力してください。", Type:=2)
If A = False Then
MsgBox " Cancel ボタンが押されました"
Exit Sub
End If
Loop Until IsDate(A) = True
MsgBox A & " が入力されました"
Exit Sub
ErrorTrap:
MsgBox "日付が入力されませんでした。再度入力してください。"
Resume
End Sub


処理内容:参照セルの番地を取得します
Sub Inputmethod_4()
Dim MyRange As Range
Dim strAddr As String
On Error Resume Next
Set MyRange = Application.InputBox("セル範囲指定", Type:=8)
If Err.Number <> 0 Then Exit Sub
On Error GoTo 0
strAddr = MyRange.Address
MsgBox strAddr
Set MyRange = Nothing
End Sub





ダイアログ ボックス

 Excel の組み込みダイアログ ボックスを表示します。通常、Dialog オブジェクトを使用するときは、 Dialogs(index) プロパティと Show メソッドと組み合わせて指定します。

 Dialogs(index) プロパティの引数 index には、そのダイアログボックスを特定する組み込み定数を指定します。使用できる定数の詳細は、ヘルプの「組み込みダイアログ ボックス引数一覧」 を参照してください。ダイアログ ボックスを表示する構文は下記のとおりです。

    Application.Dialogs(<組み込み定数>).Show

 例:ソートダイアログボックスを表示します。
    Application.Dialogs(xlDialogSort).Show

 下表は、比較的使用頻度が高いと考えられるダイアログボックスをピックアップしたものです。

Dialogsプロパティの引数 内     容
xlDialogPageSetup 印刷・ページセットアップ
xlDialogSort ソート
xlDialogOpen ファイルを開く
xlDialogSaveAs 名前をつけて保存
xlDialogFormatNumber 文字表示書式
xlDialogAlignment 文字配置書式
xlDialogActiveCellFormat 文字フォント書式
xlDialogBorder 罫線設定





テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル